Android под капотом: как работают ViewModel, состояние и восстановление
Серия: Android под капотом: как работают ViewModel, состояние и восстановление (5 частей)
- Часть 1 из 5
ViewModel в Activity под капотом: как она выживает при пересоздании
Что на самом деле происходит с ViewModel, когда Activity уничтожается и создаётся заново? Разбираем всю цепочку: ViewModelStore, NonConfigurationInstances, ActivityThread и ActivityClientRecord. Подробно показываем, где и как хранится состояние, и как Android магически восстанавливает всё при конфигурационных изменениях.
- Часть 2 из 5
ViewModel в Fragment под капотом: от ViewModelStore до Retain-фрагментов
Как фрагменты управляют своим ViewModelStore, что такое FragmentManagerViewModel, зачем нужны child-фрагменты и почему Retain-фрагменты считаются устаревшими. Полный разбор архитектурных связей и цепочек вызовов, которые позволяют фрагментам сохранять состояние при пересоздании.
- Часть 3 из 5
ViewModel под капотом: как работает в Compose и View
Что происходит под капотом, когда мы вызываем viewModel() в Compose или View? Как происходит поиск ViewModelStoreOwner, что делает LocalViewModelStoreOwner, как Compose связывается с View-иерархией и как устроены DI-делегаты вроде hiltViewModel() и koinViewModel(). Глубокий технический взгляд на механизм скопов и состояния.
- Часть 4 из 5
SavedStateHandle и Bundle под капотом: как Android сохраняет состояние
Большая статья о том, как Android сохраняет и восстанавливает состояние: от onSaveInstanceState и Bundle до современной архитектуры с SavedStateHandle и SavedStateRegistry. Как всё связано с жизненным циклом Activity, Fragment и ViewModel, какие роли играют ActivityThread, Instrumentation и ActivityClientRecord. Полный низкоуровневый маршрут данных, который развенчивает все магические моменты.
- Часть 5 из 5
Decompose и Essenty: под капотом сохранения состояния без ViewModel
В этой статье мы заглядываем глубоко внутрь Decompose и Essenty: как они сохраняют состояние без использования ViewModel и onSaveInstanceState, что происходит на уровне StateKeeper и InstanceKeeper, как всё это связано с Android SavedStateRegistry и сериализацией через kotlinx.serialization. Подробный, пошаговый разбор всей цепочки — от компонентов до низкоуровневых деталей.